import myUtils from './my-utils.js'
import {Bounds,BinArray} from './my-utils.js'
import converterUtils from './converter-utils.js'
import filenameUtils from './filename-utils.js'
import dataUtils from './data-utils.js'
import utils from './utils.js'
import pathUtils from './path-utils.js'
import shapeUtils from './shape-utils.js'
import pointUtils from './point-utils.js'
import textUtils from './text-utils.js'
export {
  Bounds,
  BinArray,
}
export default {
  uniq: myUtils.uniq,
  pluck: myUtils.pluck,
  countValues: myUtils.countValues,
  arrayToIndex: myUtils.arrayToIndex,
  forEach: myUtils.forEach,
  initializeArray: myUtils.initializeArray,
  regexEscape: myUtils.regexEscape,
  defaults: myUtils.defaults,
  toArray: myUtils.toArray,
  isString: myUtils.isString,
  isArray: myUtils.isArray,
  isFunction: myUtils.isFunction,
  isObject: myUtils.isObject,
  isBoolean: myUtils.isBoolean,
  extend: myUtils.extend,
  error: myUtils.error,
  trim: myUtils.trim,
  isNumber: myUtils.isNumber,
  isInteger: myUtils.isInteger,
  lpad: myUtils.lpad,
  sum: myUtils.sum,
  contains: myUtils.contains,
  find: myUtils.find,
  findRankByValue: myUtils.findRankByValue,
  some: myUtils.some,
  sortOn: myUtils.sortOn,

  wildcardToRegExp: converterUtils.wildcardToRegExp,

  parseLocalPath: filenameUtils.parseLocalPath,
  getFileExtension: filenameUtils.getFileExtension,
  getFileBase : filenameUtils.getFileBase,
  getPathBase: filenameUtils.getPathBase,
  getCommonFileBase: filenameUtils.getCommonFileBase,

  deleteFields: dataUtils.deleteFields,
  getUniqFieldNames: dataUtils.getUniqFieldNames,
  findFieldNames: dataUtils.findFieldNames,
  copyRecord: dataUtils.copyRecord,
  fixInconsistentFields: dataUtils.fixInconsistentFields,
  createBuffer: utils.createBuffer,
  extendBuffer: utils.extendBuffer,
  mergeNames: utils.mergeNames,
  isFiniteNumber: utils.isFiniteNumber,
  copyElements: utils.copyElements,
  formatVersionedName: utils.formatVersionedName,
  uniqifyNames: utils.uniqifyNames,

  reversePath:pathUtils.reversePath,
  clampIntervalByPct: pathUtils.clampIntervalByPct,
  getAvgSegment: pathUtils.getAvgSegment,
  getArcPresenceTest2: pathUtils.getArcPresenceTest2,
  forEachArcId: pathUtils.forEachArcId,
  traversePaths: pathUtils.traversePaths,
  groupPolygonRings: pathUtils.groupPolygonRings,
  
  forEachShapePart: shapeUtils.forEachShapePart,
  editShapeParts: shapeUtils.editShapeParts,
  cloneShape: shapeUtils.cloneShape,
  cloneShapes: shapeUtils.cloneShapes,
  findMaxPartCount: shapeUtils.findMaxPartCount,

  getPointBounds: pointUtils.getPointBounds,
  forEachPoint: pointUtils.forEachPoint,
  transformPointsInLayer: pointUtils.transformPointsInLayer,

  parseNumber: textUtils.parseNumber,
}